<?php
class ClientsSucursalesController extends AppController {

	var $name = 'ClientsSucursales';
	var $uses = array('Client','Sucursal','Country','ClientsUser','SucursalsUser','Agenda','Turn');
	
    function beforeFilter () {
        parent::beforeFilter();

		// Aplico el Layout segun la Vista o si es AJAX
		if ($this->RequestHandler->isAjax()) {
			$this->layout = 'ajax';
		}else{
			// Cambio la Vista por la del Rol
			$this->layout = strtolower($this->Session->read('VistaActual'));
		}
    }

	function index() {
		$this->Sucursal->recursive = 0;

		$Sucursales = $this->Sucursal->find('all', array(
						'conditions' => array(
											'Sucursal.client_id' => $this->Session->read('ClientesUsuarioLogueado.id'),
										)
		) );

		$this->set('Sucursales', $Sucursales);
	}

	function add() {

		$this->_accede('sucursales');

		if (!empty($this->data)) {
			
			$this->data['ClientsSucursales']['id']        = 0;
			$this->data['ClientsSucursales']['client_id'] = $this->Session->read('ClientesUsuarioLogueado.id');
			$this->Sucursal->create();

			if ($this->Sucursal->save($this->data['ClientsSucursales'])) {
				$this->Session->setFlash(__('Se ha creado la Sucursal', true));
			} else {
				$this->Session->setFlash(__('No se pudo crear la Sucursal. Por favor, intentelo más tarde.', true));
			}
			$this->redirect('/clients/view/'.$this->Session->read('ClientesUsuarioLogueado.id').'/10');
		}

		$countries = $this->Client->Country->find('list', array('order' => array('Country.name')));
		$this->set(compact('countries'));
		
	}

	function edit($id = null) {
		$this->_accede('sucursales');

		if (!empty($this->data)) {
			if ($this->Sucursal->save($this->data['ClientsSucursales'])) {
				$this->Session->setFlash(__('La Sucursal ha sido modificada', true));
			} else {
				$this->Session->setFlash(__('La Sucursal no pudo ser modificada. Por favor, intentelo más tarde.', true), 'default', array('class' => 'error-message'));
			}
			$this->redirect('/clients/view/'.$this->Session->read('ClientesUsuarioLogueado.id').'/10');			
		}

		$s = $this->Sucursal->read(null, $id);
		$this->data['ClientsSucursales'] = $s['Sucursal'];
		
		$countries = $this->Client->Country->find('list', array('order' => array('Country.name')));
		$this->set(compact('countries'));
		
	}

	function delete($id = null) {
		$this->_accede('sucursales');
		
		if (!$id) {
			$this->Session->setFlash(__('La Sucursal no es válido', true), 'default', array('class' => 'error-message'));
		} elseif ($this->Sucursal->delete($id)) {
			$this->Session->setFlash(__('La Sucursal fue eliminada', true));
		} else {
			$this->Session->setFlash(__('La Sucursal no se pudo eliminar', true), 'default', array('class' => 'error-message'));
		}
		$this->redirect('/clients/view/'.$this->Session->read('ClientesUsuarioLogueado.id').'/10');
		exit;
	}

	
	
	function crear_sucursal_por_cliente_borrar($desde=0,$hasta=0,$cuantos=0) {
		//------------------------------------------------------------------
		// Le crea la Sucursal 1 a cada cliente
		//------------------------------------------------------------------
		$this->Client->recursive = -1;
		
		if($desde=='comenzar'){
			echo "Vaciando tablas";
			$this->Sucursal->query("truncate table sucursals");
			$this->SucursalsUser->query("truncate table sucursals_users");
		
			$sql = "update agendas set sucursal_id='0'";
			$this->Agenda->query($sql);
		
			$sql = "select max(id) as ultimo from clients";
			$Clientes = $this->Client->query($sql);
			$cuantos = $Clientes[0][0]['ultimo'];
			
			
			$this->redirect("/clients_sucursales/crear_sucursal_por_cliente/0/500/$cuantos");
			die('Vaciado de tablas terminado');
		}
		

		if($hasta<=$cuantos){

			$Clientes = $this->Client->find('all', array(
													'conditions' => array(
															'Client.id >=' => $desde,
															'Client.id <' => $hasta)
														));
			$i=0;
			foreach($Clientes as $cliente){
				$client_id = $cliente['Client']['id'];
				$i++;
				$s = array();
				$this->Sucursal->create();
				$s['id']         = 0;
				$s['client_id']  = $client_id;
				$s['name'] 		 = 'Casa Central';
				$s['direccion']  = $cliente['Client']['direccion'];
				$s['localidad']  = $cliente['Client']['localidad'];
				$s['provincia']  = $cliente['Client']['provincia'];
				$s['country_id'] = $cliente['Client']['country_id'];
				$s['telefono']   = $cliente['Client']['telefono'];
				$s['email']      = $cliente['Client']['email'];
				$this->Sucursal->save($s);
			
				$sucursal_id = $this->Sucursal->getLastInsertId();
			
				$this->ClientsUser->recursive = -1;		
				$Usuarios = array();
				$Usuarios = $this->ClientsUser->find('all', array( 'conditions' => array( 'ClientsUser.client_id' => $client_id ) ) );
				//----------------------------------------------------------------
				// Asigno la sucursal a cada usuario del centro medico
				//----------------------------------------------------------------
				foreach($Usuarios as $u){
					$user_id = $u['ClientsUser']['user_id'];
				
					$su['id'] = 0;
					$su['sucursal_id'] = $sucursal_id;
					$su['user_id']     = $user_id;
					$su['client_id']   = $client_id;
					$this->SucursalsUser->save($su);
					
					
					//---------------------------------------------------------------
					//                                  Busco la Agenda de ese medico
					//---------------------------------------------------------------
					$agenda = $this->Agenda->find('first', array( 'conditions' => array( 
																		'Agenda.client_id' => $client_id,
																		'Agenda.user_id' => $user_id,
																		) ) );
					if($agenda){
					
						$agenda_id = $agenda['Agenda']['id'];
						//----------------------------------------------------------------
						//    Modifico la agenda existente, agregandole el nro de sucursal
						//----------------------------------------------------------------
						$sql = "update agendas set sucursal_id='$sucursal_id', nombre='Principal' where user_id='$user_id' and client_id='$client_id' and id='$agenda_id'";
						$this->Agenda->query($sql);
						
						//----------------------------------------------------------------
						//    Le asigno la agenda_id a los turnos
						//----------------------------------------------------------------
						$sql = "update turns set agenda_id='$agenda_id' where doctor_id='$user_id' and client_id='$client_id'";
						$this->Turn->query($sql);
						
					}
					
					
				}
				

				
			}
			echo "Proceso terminado, desde el: $desde hasta el $hasta";
			$desde = $hasta + 1;
			$hasta = $desde + 500;
			//$this->redirect("/clients_sucursales/crear_sucursal_por_cliente/$desde/$hasta/$cuantos");
			die();
			
		} //  endif $hastaz=$cuantos	
		
		
	}
	
	
	
}
?>